pub mod d2;
pub use d2::{Renderer2D, Rect};
pub mod d3;
pub use d3::Renderer3D;
pub mod camera;
pub use camera::{PerspectiveCamera, FlyController};

#[repr(C)]
#[derive(bytemuck::NoUninit, Clone, Copy)]
pub struct Color {
    pub r: f32,
    pub g: f32,
    pub b: f32,
    pub a: f32,
}
impl Color {
    pub const fn new(r: f32, g: f32, b: f32, a: f32) -> Self {
        Self { r, g, b, a }
    }
    pub const fn white() -> Self {
        Self::new(1.0, 1.0, 1.0, 1.0)
    }
}